# 定义---单引号，双引号，三引号

# str1 = 'abc'
# str2 = "xyz"
# str3 = """


# print（type（str3）)
# 不要把函数的内建名变为变量名---补充笔记


# 转义字符  --以\开头
# print("\") --单引号本身
# print(" '")--输出引号本身
# print(' " ')---
# print("\\")---\
# print("a\nb") --a 换行 b
# print("a\tx")---a 空格 b
# print("a\\tb")----a\tb
# print(r"a\tb")----r 标志位，输出原始字符串，不转义--a\tb


# 字符串的切片处理
# str[start:end:step]
# step  (默认为1)
# 1.确定step为正还是为负，为正从前往后截取；为负为从后往前截取
# 2.确定start和end的位置  start 要在截取方向上在end的前面
# 3.确定步长
#ps：start ：需要获取的字符串的开始位置（包括该位置的值），默认为 0 ，省略不写时表示从0开始。
    #stop ：需要获取的字符串的结束位置（不包括该位置的值），省略不写时表示到末尾结束。
    #step ：步长，默认为 1，当 start 大于 stop 时，step 为负数。 正整数表示从左向右截取，负整数表示从右向左截取。


# str1 ="abcdefghi"
# print(str1[:4])
# print(str1[3:7])
# print(str1[6::-1])
# print(str1[-2:2:-2])
# print(str1[2:-2:-2])  #开始比结束还大，截取为0
# print(str1[::-1])  #翻转操作

#字符串的拼接
#字符串的连接
# str1 = "xyz" "abc"
# print(str1)
# str2="xyz"+"123"
# print(str2)
# str3="xyz"*3
# print(str3)

#字符串格式化
#占位符格式化
#  %s--字符串输出   %d --十进制整型输出  %x --十六进制  %o --八进制  %f --浮点型输出 %.2f --保留两位小数输出  %%百分号输出
# num =10
# print("十六进制表示：%x"%num)  #十六进制表示：a
# print("浮点数保留小数位：%.2f"%3.445214)  #浮点数保留小数位：3.45--有四舍五入
# print("百分数表示：%.3f%%"%(0.4552335 * 100))  #后面两个%%表示百分号本身

#format格式化
# name =input("please input your name:")
# age = input("please input your age:")
# format_str1="my name is {},my age is {}".format(name,age)
# print(format_str1)
# format_str2="my name is {1},my age is {0}".format(name,age)  #{}里面指明放参数，这时是name输入age，age输入name，反了
# print(format_str2)
# format_str3="my name is {user},my age is {age}".format(user=name,age=age)  #给变量取名字，第一个age是变量名，第二个是输入的数据
# print(format_str3)

#f标志位格式化   这个很好用！！  pyrhon3支持
# name="sctl"
# age=17
# str1=f"my name is {name},my age is {age+3}"#可以放表达式
# print(str1)

#python字符串的常用属性方法
#python一切皆对象
# print(dir("abc"))
# #变量名.属性名  变量名.方法名()
# print(f"是不是全为大写：{'xxxABC'.isupper()}")
# print(f"是不是标题字符：{'A Beautiful Girl'.istitle()}")
# print(f"字符串中是否为可打印字符：{'ab'.isprintable()}")
# print(f"字符串中是否只包含空格:{'sj sah win'.isspace()}")
# print(f"字符串是否以某个字符串开始:{'good job'.startswith('good')}")
# print(f"字符串是否以某个字符串结尾:{'good job'.endswith('job')}")

#字符串的遍历
# for i in "abc":
#     print("*"*10)  #注意缩进---同一级字符串要缩进一致
#     print(i)

#判断成员关系
# print("a" in "abc")   #true
# print("a" not in "abc")   #false

# if "a" in "abc":
#     print("ok .. a")
# else:
#     print("not in")

#练习题：1.从键盘接受用户的输入字符串，统计每个字符串出现的次数
# str1 =input("请输入一个字符串：")
# str2 =""
# num =0
# for i in str1:
#     if i not in str2:
#         str2.append(i)
#     else:
#         num+=1
# for i in str2:
#     print(f"{i}出现的次数为{num+1}次")

# str1 = input("请输入一个字符串：")
# count ={}    #定义一个空字典
# for i in str1:  #遍历输入的字符串，以键值对的方式储存在字典中
#     count[i] =str1.count(i)
# for key in count:   #遍历字典，格式化输出
#     print(f"{key}:{count[key]}次")
# count函数会搜索一个元素在列表中出现的次数
# 例如：n = list2.count(22)
#      print(f"元素22在列表中出现的次数{n}")


#练习题： 2.统计出现次数最多的字符

str =input("请输入一个字符串：")  #从键盘接受用户的输入字符串
count = {}  # 创建空字典
for i in set(str):
    count[i] = str.count(i)   #字典为key=value样式，count【i】是key值
    max_value = max(count.values()) #拿到字典中最大的value
for k,v in count.items():  #通过item函数将字典转换成成元组（k，6)，再遍历
    if v ==max_value:   #判断元组中v的值与max_value值相等，打印对应的k，v
        print("输入字符中次数最多的字符是：",k,"其出现次数为：",v)
# for i in count:
#     # 判断字典中是否存在该键
#     if i in count.keys():
#         count[i] += 1
#     else:
#         count[i] = 1
#
# out = max(count, key=count.get)  #Python 字典(Dictionary) get() 函数返回指定键的值。
# pot = count[out]
#
# print(out, pot)









